import java.util.ArrayList;
import java.util.List;

public class Solution <E>{
    
    public static List<Integer> grayCode(int n) {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 2 << n - 1; i++) {
            list.add((i >> 1) ^ i);
        }
       return list;
    }

    public static void main(String[] args) {
        List<Integer> list = grayCode(6);
        System.out.println(list);
        System.out.println(list.size());

    }
}
